package interfaz;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import java.util.ArrayList;

import javax.swing.ScrollPaneConstants;
import javax.swing.JComboBox;

public class InterfazProfesor extends JFrame {

	// Interfaz

	private JTextField textFieldTema, textFieldNombre, campoChat,
			textFieldValor, textFieldFormularPregunta, textFieldCalificacion,
			textFieldDescripcion, textFieldExpresionBase;
	private JTextArea areaChat, textAreaPizarra;
	private JButton btnAnalizar, btnEnviar, btnAgregar, btnBorrar,
			btnChatEnviar, btnDefinir, btnFormularPregunta;
	private JLabel estadoAnalisis, tituloTema;

	// Variables Privadas

	private JScrollPane scrollPanelConstantesGlobales, scrollPaneSoluciones,
			scrollPaneVariablesEstud;
	private JPanel panelInternoConstantesGlobales, panelInternoSoluciones,
			panelInternoVariablesEstud;
	private JComboBox<String> comboBoxSoluciones, comboBoxEstudiantes,
			comboBoxPreguntas;

	private ArrayList<JLabel> listaConstantesGlobales = new ArrayList<JLabel>();
	private ArrayList<JLabel> listaSolucionesEstudiantes = new ArrayList<JLabel>();
	private ArrayList<JLabel> listaVariablesEstudiante = new ArrayList<JLabel>();

	private JTextField campoExpresiones;

	// Variables Publicas

	public ArrayList listaConstantesGlobalesModelo = new ArrayList();
	public ArrayList listaSolucionesEstudiantesModelo = new ArrayList();
	public String temaEvaluar;

	/**
	 * Create the frame.
	 */
	public InterfazProfesor() {

		temaEvaluar = "";

		// Definicion
		setTitle("Pizarra Profesor");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setResizable(false);
		setBounds(100, 100, 1018, 728);
		setLocationRelativeTo(null);

		JPanel contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JPanel panel = new JPanel();
		panel.setBounds(10, 11, 992, 40);
		contentPane.add(panel);
		panel.setLayout(null);

		JLabel lblTemaAEvaluar = new JLabel("Tema a Evaluar: ");
		lblTemaAEvaluar.setBounds(10, 11, 131, 14);
		lblTemaAEvaluar.setHorizontalAlignment(SwingConstants.LEFT);
		panel.add(lblTemaAEvaluar);

		tituloTema = new JLabel("No se ha definido un tema");
		tituloTema.setBounds(110, 11, 281, 14);
		panel.add(tituloTema);

		textFieldTema = new JTextField();
		textFieldTema.setBounds(316, 10, 106, 20);
		panel.add(textFieldTema);
		textFieldTema.setColumns(10);

		btnDefinir = new JButton("Definir");
		btnDefinir.setBounds(893, 7, 89, 23);
		panel.add(btnDefinir);

		JLabel lblDefinirTema = new JLabel("Titulo");
		lblDefinirTema.setBounds(275, 14, 72, 14);
		panel.add(lblDefinirTema);

		JLabel lblDescripcion = new JLabel("Descripcion");
		lblDescripcion.setBounds(450, 11, 83, 14);
		panel.add(lblDescripcion);

		textFieldDescripcion = new JTextField();
		textFieldDescripcion.setBounds(521, 8, 86, 20);
		panel.add(textFieldDescripcion);
		textFieldDescripcion.setColumns(10);

		JLabel lblNewLabel = new JLabel("Expresion");
		lblNewLabel.setBounds(643, 11, 83, 14);
		panel.add(lblNewLabel);

		textFieldExpresionBase = new JTextField();
		textFieldExpresionBase.setBounds(718, 8, 150, 20);
		panel.add(textFieldExpresionBase);
		textFieldExpresionBase.setColumns(10);

		JPanel panel_2 = new JPanel();
		panel_2.setBounds(183, 179, 413, 176);
		contentPane.add(panel_2);
		panel_2.setLayout(null);

		JLabel lblPizarra = new JLabel("Pizarra");
		lblPizarra.setBounds(182, 11, 46, 14);
		panel_2.add(lblPizarra);

		JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBounds(10, 36, 381, 129);
		panel_2.add(scrollPane_1);

		textAreaPizarra = new JTextArea();
		textAreaPizarra.setEditable(false);
		scrollPane_1.setViewportView(textAreaPizarra);

		JPanel panel_3 = new JPanel();
		panel_3.setBounds(10, 366, 586, 136);
		contentPane.add(panel_3);
		panel_3.setLayout(null);

		JLabel lblExpresiones = new JLabel("Expresiones");
		lblExpresiones.setBounds(170, 11, 106, 14);
		panel_3.add(lblExpresiones);

		campoExpresiones = new JTextField();
		campoExpresiones.setBounds(10, 36, 566, 20);
		panel_3.add(campoExpresiones);
		campoExpresiones.setColumns(10);

		btnAnalizar = new JButton("Analizar");
		btnAnalizar.setBounds(10, 67, 89, 23);
		panel_3.add(btnAnalizar);

		JLabel lblEstado = new JLabel("Estado: ");
		lblEstado.setBounds(109, 71, 46, 14);
		panel_3.add(lblEstado);

		estadoAnalisis = new JLabel("No analizado");
		estadoAnalisis.setBounds(152, 71, 89, 14);
		panel_3.add(estadoAnalisis);

		btnEnviar = new JButton("Enviar");
		btnEnviar.setBounds(180, 102, 89, 23);
		panel_3.add(btnEnviar);

		JLabel lblSoluciones = new JLabel("Soluciones");
		lblSoluciones.setBounds(320, 67, 97, 14);
		panel_3.add(lblSoluciones);

		comboBoxSoluciones = new JComboBox<String>();
		comboBoxSoluciones.addItem("");
		comboBoxSoluciones.setBounds(320, 92, 256, 20);
		panel_3.add(comboBoxSoluciones);

		textFieldCalificacion = new JTextField();
		textFieldCalificacion.setBounds(10, 101, 160, 20);
		panel_3.add(textFieldCalificacion);
		textFieldCalificacion.setColumns(10);

		JPanel panel_4 = new JPanel();
		panel_4.setBounds(427, 513, 575, 176);
		contentPane.add(panel_4);
		panel_4.setLayout(null);

		JLabel lblChat = new JLabel("Chat:");
		lblChat.setBounds(10, 11, 46, 14);
		panel_4.add(lblChat);

		JScrollPane scrollPaneChat = new JScrollPane();
		scrollPaneChat
				.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPaneChat
				.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scrollPaneChat.setBounds(10, 36, 555, 98);
		panel_4.add(scrollPaneChat);

		areaChat = new JTextArea(
				"----------  Bienvenido Profesor!!!  ----------");
		areaChat.setEditable(false);
		scrollPaneChat.setViewportView(areaChat);

		campoChat = new JTextField();
		campoChat.setBounds(10, 145, 390, 23);
		panel_4.add(campoChat);
		campoChat.setColumns(10);

		btnChatEnviar = new JButton("Enviar");
		btnChatEnviar.setBounds(410, 145, 155, 23);
		panel_4.add(btnChatEnviar);

		JPanel panelConstantesGlobales = new JPanel();
		panelConstantesGlobales.setLayout(null);
		panelConstantesGlobales.setBounds(10, 62, 163, 291);
		contentPane.add(panelConstantesGlobales);

		JLabel lblConstantesPropias = new JLabel("Variables Globales");
		lblConstantesPropias.setBounds(10, 11, 143, 14);
		panelConstantesGlobales.add(lblConstantesPropias);

		// Globales
		scrollPanelConstantesGlobales = new JScrollPane();
		scrollPanelConstantesGlobales
				.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scrollPanelConstantesGlobales
				.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPanelConstantesGlobales.setBounds(10, 33, 143, 241);
		panelConstantesGlobales.add(scrollPanelConstantesGlobales);

		panelInternoConstantesGlobales = new JPanel();
		scrollPanelConstantesGlobales
				.setViewportView(panelInternoConstantesGlobales);

		JPanel panel_5 = new JPanel();
		panel_5.setBounds(10, 513, 407, 176);
		contentPane.add(panel_5);
		panel_5.setLayout(null);

		JLabel lblGestinVariables = new JLabel("Gestion Variables Globales");
		lblGestinVariables.setBounds(10, 11, 173, 14);
		panel_5.add(lblGestinVariables);

		textFieldNombre = new JTextField();
		textFieldNombre.setBounds(74, 36, 323, 20);
		panel_5.add(textFieldNombre);
		textFieldNombre.setColumns(10);

		btnAgregar = new JButton("Agregar");
		btnAgregar.setBounds(10, 94, 387, 23);
		panel_5.add(btnAgregar);

		btnBorrar = new JButton("Borrar");
		btnBorrar.setBounds(10, 128, 387, 23);
		panel_5.add(btnBorrar);

		textFieldValor = new JTextField();
		textFieldValor.setBounds(74, 63, 323, 20);
		panel_5.add(textFieldValor);
		textFieldValor.setColumns(10);

		JLabel lblNombre = new JLabel("Nombre");
		lblNombre.setBounds(10, 39, 46, 14);
		panel_5.add(lblNombre);

		JLabel lblValor = new JLabel("Valor");
		lblValor.setBounds(10, 66, 46, 14);
		panel_5.add(lblValor);

		JPanel panelSolucionesEstudiantes = new JPanel();
		panelSolucionesEstudiantes.setBounds(606, 62, 180, 440);
		contentPane.add(panelSolucionesEstudiantes);
		panelSolucionesEstudiantes.setLayout(null);

		JLabel lblSolucionesDeEstudiantes = new JLabel(
				"Soluciones de Estudiantes");
		lblSolucionesDeEstudiantes.setBounds(10, 5, 160, 14);
		panelSolucionesEstudiantes.add(lblSolucionesDeEstudiantes);

		scrollPaneSoluciones = new JScrollPane();
		scrollPaneSoluciones
				.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scrollPaneSoluciones.setBounds(10, 30, 160, 399);
		panelSolucionesEstudiantes.add(scrollPaneSoluciones);

		panelInternoSoluciones = new JPanel();
		scrollPaneSoluciones.setViewportView(panelInternoSoluciones);

		JPanel panel_1 = new JPanel();
		panel_1.setBounds(796, 62, 206, 440);
		contentPane.add(panel_1);
		panel_1.setLayout(null);

		comboBoxEstudiantes = new JComboBox();
		comboBoxEstudiantes.setBounds(10, 28, 186, 20);
		panel_1.add(comboBoxEstudiantes);

		scrollPaneVariablesEstud = new JScrollPane();
		scrollPaneVariablesEstud
				.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scrollPaneVariablesEstud.setBounds(10, 96, 186, 333);
		panel_1.add(scrollPaneVariablesEstud);

		panelInternoVariablesEstud = new JPanel();
		scrollPaneVariablesEstud.setViewportView(panelInternoVariablesEstud);

		JLabel lblEstudiantes = new JLabel("Estudiantes");
		lblEstudiantes.setBounds(66, 11, 78, 14);
		panel_1.add(lblEstudiantes);

		JLabel lblVariablesEstudiantes = new JLabel("Variables Estudiantes");
		lblVariablesEstudiantes.setBounds(24, 71, 131, 14);
		panel_1.add(lblVariablesEstudiantes);

		JPanel panel_6 = new JPanel();
		panel_6.setBounds(183, 62, 413, 106);
		contentPane.add(panel_6);
		panel_6.setLayout(null);

		JLabel lblFormularPregunta = new JLabel("Formular Pregunta");
		lblFormularPregunta.setBounds(10, 46, 145, 14);
		panel_6.add(lblFormularPregunta);

		JLabel lblPregunta = new JLabel("Pregunta:");
		lblPregunta.setBounds(10, 11, 79, 14);
		panel_6.add(lblPregunta);

		textFieldFormularPregunta = new JTextField();
		textFieldFormularPregunta.setBounds(135, 43, 268, 20);
		panel_6.add(textFieldFormularPregunta);
		textFieldFormularPregunta.setColumns(10);

		btnFormularPregunta = new JButton("Formular");
		btnFormularPregunta.setBounds(135, 71, 268, 23);
		panel_6.add(btnFormularPregunta);

		comboBoxPreguntas = new JComboBox();
		comboBoxPreguntas.setBounds(135, 8, 268, 20);
		comboBoxPreguntas.addItem("");
		panel_6.add(comboBoxPreguntas);

	}

	public JScrollPane getScrollPanelConstantesGlobales() {
		return scrollPanelConstantesGlobales;
	}

	public JScrollPane getScrollPaneSoluciones() {
		return scrollPaneSoluciones;
	}

	public JPanel getPanelInternoConstantesGlobales() {
		return panelInternoConstantesGlobales;
	}

	public JPanel getPanelInternoSoluciones() {
		return panelInternoSoluciones;
	}

	public JComboBox<String> getComboBoxSoluciones() {
		return comboBoxSoluciones;
	}

	public ArrayList<JLabel> getListaConstantesGlobales() {
		return listaConstantesGlobales;
	}

	public ArrayList<JLabel> getListaSolucionesEstudiantes() {
		return listaSolucionesEstudiantes;
	}

	public JTextField getCampoExpresiones() {
		return campoExpresiones;
	}

	public ArrayList getListaConstantesGlobalesModelo() {
		return listaConstantesGlobalesModelo;
	}

	public ArrayList getListaSolucionesEstudiantesModelo() {
		return listaSolucionesEstudiantesModelo;
	}

	public String getTemaEvaluar() {
		return temaEvaluar;
	}

	public JTextField getTextFieldTema() {
		return textFieldTema;
	}

	public JTextField getTextFieldNombre() {
		return textFieldNombre;
	}

	public JTextField getCampoChat() {
		return campoChat;
	}

	public JTextField getTextFieldValor() {
		return textFieldValor;
	}

	public JTextArea getAreaChat() {
		return areaChat;
	}

	public JTextArea getTextAreaPizarra() {
		return textAreaPizarra;
	}

	public JButton getBtnAnalizar() {
		return btnAnalizar;
	}

	public JButton getBtnEnviar() {
		return btnEnviar;
	}

	public JButton getBtnAgregar() {
		return btnAgregar;
	}

	public JButton getBtnBorrar() {
		return btnBorrar;
	}

	public JButton getBtnChatEnviar() {
		return btnChatEnviar;
	}

	public JButton getBtnDefinir() {
		return btnDefinir;
	}

	public JTextField getTextFieldCalificacion() {
		return textFieldCalificacion;
	}

	public JLabel getEstadoAnalisis() {
		return estadoAnalisis;
	}

	public JLabel getTituloTema() {
		return tituloTema;
	}

	public void setTituloTema(JLabel tituloTema) {
		this.tituloTema = tituloTema;
	}

	public JTextField getTextFieldFormularPregunta() {
		return textFieldFormularPregunta;
	}

	public JButton getBtnFormularPregunta() {
		return btnFormularPregunta;
	}

	public JPanel getPanelInternoVariablesEstud() {
		return panelInternoVariablesEstud;
	}

	public void setPanelInternoVariablesEstud(JPanel panelInternoVariablesEstud) {
		this.panelInternoVariablesEstud = panelInternoVariablesEstud;
	}

	public JComboBox<String> getComboBoxEstudiantes() {
		return comboBoxEstudiantes;
	}

	public ArrayList<JLabel> getListaVariablesEstudiante() {
		return listaVariablesEstudiante;
	}

	public JScrollPane getScrollPaneVariablesEstud() {
		return scrollPaneVariablesEstud;
	}

	public JTextField getTextFieldDescripcion() {
		return textFieldDescripcion;
	}

	public JTextField getTextFieldExpresionBase() {
		return textFieldExpresionBase;
	}

	public JComboBox<String> getComboBoxPreguntas() {
		return comboBoxPreguntas;
	}
	
	

}
